package com.example.myDesignPatterns.创建者模式.工厂模式.简单工厂模式不是设计模式.factory;

import com.example.myDesignPatterns.创建者模式.工厂模式.bean.coffee.AmericanCoffee;
import com.example.myDesignPatterns.创建者模式.工厂模式.bean.coffee.Coffee;
import com.example.myDesignPatterns.创建者模式.工厂模式.bean.coffee.LatteCoffee;

/**
 * 优点：
 * 封装了创建对象的过程，可以通过参数直接获取对象。把对象的创建和业务逻辑层分开，这样以后就避
 * 免了修改客户代码，如果要实现新产品直接修改工厂类，而不需要在原代码中修改，这样就降低了客户
 * 代码修改的可能性，更加容易扩展。
 * 缺点：
 * 增加新产品时还是需要修改工厂类的代码，违背了“开闭原则”。
 */
public class SimpleCoffeeFactory {
    public Coffee createCoffee(String type) {
        Coffee coffee = null;
        if("americano".equals(type)) {
            coffee = new AmericanCoffee();
        } else if("latte".equals(type)) {
            coffee = new LatteCoffee();
        }
        return coffee;
    }

}
